// MIR for `std::ptr::drop_in_place` before AddMovesForPackedDrops fn std::ptr::drop_in_place(_1: *mut [String]) -> () { let mut _0: (); let mut _2: usize; let mut _3: usize; let mut _4: *mut std::string::String; let mut _5: bool; let mut _6: *mut std::string::String; let mut _7: bool; bb0: { goto -> bb8; } bb1: { return; } bb2 (cleanup): { resume; } bb3 (cleanup): { _4 = &raw mut (*_1)[_3]; _3 = Add(move _3, const 1_usize); drop((*_4)) -> [return: bb4, unwind terminate(cleanup)]; } bb4 (cleanup): { _5 = Eq(_3, _2); switchInt(move _5) -> [0: bb3, otherwise: bb2]; } bb5: { _6 = &raw mut (*_1)[_3]; _3 = Add(move _3, const 1_usize); drop((*_6)) -> [return: bb6, unwind: bb4]; } bb6: { _7 = Eq(_3, _2); switchInt(move _7) -> [0: bb5, otherwise: bb1]; } bb7: { _2 = Len((*_1)); _3 = const 0_usize; goto -> bb6; } bb8: { goto -> bb7; } }